package redis_ser

import (
	"encoding/json"
	"fmt"
	"giv-vue-blog/global"
	"time"
)

const newsIndex = "news_index"

type NewsData struct {
	Index    int    `json:"index"`
	Title    string `json:"title"`
	HotValue string `json:"hotValue"`
	Link     string `json:"link"`
}

// SetNews 设置某一个数据，重复执行 重复添加
func SetNews(key string, newsData []NewsData) error {
	byteData, _ := json.Marshal(newsData)
	//err := global.Redis.HSet(newsIndex, key, byteData).Err()
	//TODO: 优化遗留的新闻缓存问题 设置过期时间为10m
	err := global.Redis.Set(fmt.Sprintf("%s_%s", newsIndex, key), byteData, 10*time.Minute).Err()
	return err
}

func GetNews(key string) (newsData []NewsData, err error) {
	//res := global.Redis.HGet(newsIndex, key).Val()
	//TODO: 优化遗留的新闻缓存问题 设置过期时间为1h
	res := global.Redis.Get(fmt.Sprintf("%s_%s", newsIndex, key)).Val()
	err = json.Unmarshal([]byte(res), &newsData)
	return
}
